nethackfandomcom-20200214-history
Source:Unixconf.h
Below is the full text to include/unixconf.h from NetHack 3.4.3. To link to a particular line, write [[unixconf.h#line123]], for example. 1. /* SCCS Id: @(#)unixconf.h 3.4 1999/07/02 */ 2. /* Copyright © Stichting Mathematisch Centrum, Amsterdam, 1985. */ 3. /* NetHack may be freely redistributed. See license for details. */ 4. 5. #ifdef UNIX 6. #ifndef UNIXCONF_H 7. #define UNIXCONF_H 8. 9. /* 10. * Some include files are in a different place under SYSV 11. * BSD SYSV 12. * 13. * 14. * 15. * Some routines are called differently 16. * index strchr 17. * rindex strrchr 18. * 19. */ 20. 21. /* define exactly one of the following four choices */ 22. /* #define BSD 1 */ /* define for 4.n/Free/Open/Net BSD */ 23. /* also for relatives like SunOS 4.x, DG/UX, and */ 24. /* older versions of Linux */ 25. /* #define ULTRIX */ /* define for Ultrix v3.0 or higher (but not lower) */ 26. /* Use BSD for < v3.0 */ 27. /* "ULTRIX" not to be confused with "ultrix" */ 28. #define SYSV /* define for System V, Solaris 2.x, newer versions */ 29. /* of Linux */ 30. /* #define HPUX */ /* Hewlett-Packard's Unix, version 6.5 or higher */ 31. /* use SYSV for < v6.5 */ 32. 33. 34. /* define any of the following that are appropriate */ 35. #define SVR4 /* use in addition to SYSV for System V Release 4 */ 36. /* including Solaris 2+ */ 37. #define NETWORK /* if running on a networked system */ 38. /* e.g. Suns sharing a playground through NFS */ 39. /* #define SUNOS4 */ /* SunOS 4.x */ 40. /* #define LINUX */ /* Another Unix clone */ 41. /* #define CYGWIN32 */ /* Unix on Win32 -- use with case sensitive defines */ 42. /* #define GENIX */ /* Yet Another Unix Clone */ 43. /* #define HISX */ /* Bull Unix for XPS Machines */ 44. /* #define BOS */ /* Bull Open Software - Unix for DPX/2 Machines */ 45. /* #define UNIXPC */ /* use in addition to SYSV for AT&T 7300/3B1 */ 46. /* #define AIX_31 */ /* In AIX 3.1 (IBM RS/6000) use BSD ioctl's to gain 47. * job control (note that AIX is SYSV otherwise) 48. * Also define this for AIX 3.2 */ 49. 50. #define TERMINFO /* uses terminfo rather than termcap */ 51. /* Should be defined for most SYSV, SVR4 (including 52. * Solaris 2+), HPUX, and Linux systems. In 53. * particular, it should NOT be defined for the UNIXPC 54. * unless you remove the use of the shared library in 55. * the Makefile */ 56. #define TEXTCOLOR /* Use System V r3.2 terminfo color support */ 57. /* and/or ANSI color support on termcap systems */ 58. /* and/or X11 color */ 59. #define POSIX_JOB_CONTROL /* use System V / Solaris 2.x / POSIX job control */ 60. /* (e.g., VSUSP) */ 61. #define POSIX_TYPES /* use POSIX types for system calls and termios */ 62. /* Define for many recent OS releases, including 63. * those with specific defines (since types are 64. * changing toward the standard from earlier chaos). 65. * For example, platforms using the GNU libraries, 66. * Linux, Solaris 2.x 67. */ 68. 69. /* #define OPENWINBUG */ /* avoid a problem using OpenWindows 3.0 for 70. X11 on SunOS 4.1.x, x>= 2. Do not define 71. for other X11 implementations. */ 72. /* #define PYRAMID_BUG */ /* avoid a bug on the Pyramid */ 73. /* #define BSD_43_BUG */ /* for real 4.3BSD cc's without schain botch fix */ 74. /* #define MICROPORT_BUG */ /* problems with large arrays in structs */ 75. /* #define MICROPORT_286_BUG */ /* changes needed in termcap.c to get it to 76. run with Microport Sys V/AT version 2.4. 77. By Jay Maynard */ 78. /* #define AIXPS_2BUG */ /* avoid a problem with little_to_big() optimization */ 79. 80. /* #define RANDOM */ /* if neither random/srandom nor lrand48/srand48 81. is available from your system */ 82. 83. /* see sys/unix/snd86unx.shr for more information on these */ 84. /* #define UNIX386MUSIC */ /* play real music through speaker on systems 85. with music driver installed */ 86. /* #define VPIX_MUSIC */ /* play real music through speaker on systems 87. with built-in VPIX support */ 88. 89. 90. /* 91. * The next two defines are intended mainly for the Andrew File System, 92. * which does not allow hard links. If NO_FILE_LINKS is defined, lock files 93. * will be created in LOCKDIR using open() instead of in the playground using 94. * link(). 95. * Ralf Brown, 7/26/89 (from v2.3 hack of 10/10/88) 96. */ 97. 98. /* #define NO_FILE_LINKS */ /* if no hard links */ 99. /* #define LOCKDIR "/usr/games/lib/nethackdir" */ /* where to put locks */ 100. 101. /* 102. * If you want the static parts of your playground on a read-only file 103. * system, define VAR_PLAYGROUND to be where the variable parts are kept. 104. */ 105. /* #define VAR_PLAYGROUND "/var/lib/games/nethack" */ 106. 107. 108. /* 109. * Define DEF_PAGER as your default pager, e.g. "/bin/cat" or "/usr/ucb/more" 110. * If defined, it can be overridden by the environment variable PAGER. 111. * Hack will use its internal pager if DEF_PAGER is not defined. 112. * (This might be preferable for security reasons.) 113. * #define DEF_PAGER ".../mydir/mypager" 114. */ 115. 116. 117. 118. /* 119. * Define PORT_HELP to be the name of the port-specfic help file. 120. * This file is found in HACKDIR. 121. * Normally, you shouldn't need to change this. 122. * There is currently no port-specific help for Unix systems. 123. */ 124. /* #define PORT_HELP "Unixhelp" */ 125. 126. #ifdef TTY_GRAPHICS 127. /* 128. * To enable the `timed_delay' option for using a timer rather than extra 129. * screen output when pausing for display effect. Requires that `msleep' 130. * function be available (with time argument specified in milliseconds). 131. * Various output devices can produce wildly varying delays when the 132. * "extra output" method is used, but not all systems provide access to 133. * a fine-grained timer. 134. */ 135. /* #define TIMED_DELAY */ /* usleep() */ 136. #endif 137. 138. /* 139. * If you define MAIL, then the player will be notified of new mail 140. * when it arrives. If you also define DEF_MAILREADER then this will 141. * be the default mail reader, and can be overridden by the environment 142. * variable MAILREADER; otherwise an internal pager will be used. 143. * A stat system call is done on the mailbox every MAILCKFREQ moves. 144. */ 145. 146. #define MAIL /* Deliver mail during the game */ 147. 148. /* The Andrew Message System does mail a little differently from normal 149. * UNIX. Mail is deposited in the user's own directory in ~/Mailbox 150. * (another directory). MAILBOX is the element that will be added on to 151. * the user's home directory path to generate the Mailbox path - just in 152. * case other Andrew sites do it differently from CMU. 153. * 154. * dan lovinger 155. * dl2n+@andrew.cmu.edu (dec 19 1989) 156. */ 157. 158. /* #define AMS */ /* use Andrew message system for mail */ 159. 160. /* NO_MAILREADER is for kerberos authenticating filesystems where it is 161. * essentially impossible to securely exec child processes, like mail 162. * readers, when the game is running under a special token. 163. * 164. * dan 165. */ 166. 167. /* #define NO_MAILREADER */ /* have mail daemon just tell player of mail */ 168. 169. #ifdef MAIL 170. # if defined(BSD) || defined(ULTRIX) 171. # ifdef AMS 172. #define AMS_MAILBOX "/Mailbox" 173. # else 174. # if defined(__FreeBSD__) || defined(__OpenBSD__) 175. #define DEF_MAILREADER "/usr/bin/mail" 176. # else 177. #define DEF_MAILREADER "/usr/ucb/Mail" 178. # endif 179. # endif 180. #else 181. # if (defined(SYSV) || defined(DGUX) || defined(HPUX)) && !defined(LINUX) 182. # if defined(M_XENIX) 183. #define DEF_MAILREADER "/usr/bin/mail" 184. # else 185. # ifdef __sgi 186. #define DEF_MAILREADER "/usr/sbin/Mail" 187. # else 188. #define DEF_MAILREADER "/usr/bin/mailx" 189. # endif 190. # endif 191. # else 192. #define DEF_MAILREADER "/bin/mail" 193. # endif 194. #endif 195. 196. #define MAILCKFREQ 50 197. #endif /* MAIL */ 198. 199. 200. 201. #ifdef COMPRESS 202. /* Some implementations of compress need a 'quiet' option. 203. * If you've got one of these versions, put -q here. 204. * You can also include any other strange options your compress needs. 205. * If you have a normal compress, just leave it commented out. 206. */ 207. /* #define COMPRESS_OPTIONS "-q" */ 208. #endif 209. 210. #define FCMASK 0660 /* file creation mask */ 211. 212. 213. /* 214. * The remainder of the file should not need to be changed. 215. */ 216. 217. #ifdef _AUX_SOURCE 218. # ifdef AUX /* gcc ? */ 219. # define _SYSV_SOURCE 220. # define _BSD_SOURCE 221. #else 222. # define AUX 223. # endif 224. #endif /* _AUX_SOURCE */ 225. 226. #if defined(LINUX) || defined(bsdi) 227. # ifndef POSIX_TYPES 228. # define POSIX_TYPES 229. # endif 230. # ifndef POSIX_JOB_CONTROL 231. # define POSIX_JOB_CONTROL 232. # endif 233. #endif 234. 235. /* 236. * BSD/ULTRIX systems are normally the only ones that can suspend processes. 237. * Suspending NetHack processes cleanly should be easy to add to other systems 238. * that have SIGTSTP in the Berkeley sense. Currently the only such systems 239. * known to work are HPUX and AIX 3.1; other systems will probably require 240. * tweaks to unixtty.c and ioctl.c. 241. * 242. * POSIX defines a slightly different type of job control, which should be 243. * equivalent for NetHack's purposes. POSIX_JOB_CONTROL should work on 244. * various recent SYSV versions (with possibly tweaks to unixtty.c again). 245. */ 246. #ifndef POSIX_JOB_CONTROL 247. # if defined(BSD) || defined(ULTRIX) || defined(HPUX) || defined(AIX_31) 248. # define BSD_JOB_CONTROL 249. # else 250. # if defined(SVR4) 251. # define POSIX_JOB_CONTROL 252. # endif 253. # endif 254. #endif 255. #if defined(BSD_JOB_CONTROL) || defined(POSIX_JOB_CONTROL) || defined(AUX) 256. #define SUSPEND /* let ^Z suspend the game */ 257. #endif 258. 259. 260. #if defined(BSD) || defined(ULTRIX) 261. #include 262. #else 263. #include 264. #endif 265. 266. #define HLOCK "perm" /* an empty file used for locking purposes */ 267. 268. #ifndef REDO 269. #define Getchar nhgetch 270. #endif 271. #define tgetch getchar 272. 273. #define SHELL /* do not delete the '!' command */ 274. 275. #include "system.h" 276. 277. #if defined(POSIX_TYPES) || defined(__GNUC__) 278. #include 279. #include 280. #endif 281. 282. #if defined(POSIX_TYPES) || defined(__GNUC__) || defined(BSD) || defined(ULTRIX) 283. #include 284. #endif 285. 286. #if defined(BSD) || defined(ULTRIX) 287. # if !defined(DGUX) && !defined(SUNOS4) 288. #define memcpy(d, s, n) bcopy(s, d, n) 289. #define memcmp(s1, s2, n) bcmp(s2, s1, n) 290. # endif 291. # ifdef SUNOS4 292. #include 293. # endif 294. #else /* therefore SYSV */ 295. # ifndef index /* some systems seem to do this for you */ 296. #define index strchr 297. # endif 298. # ifndef rindex 299. #define rindex strrchr 300. # endif 301. #endif 302. 303. /* Use the high quality random number routines. */ 304. #if defined(BSD) || defined(LINUX) || defined(ULTRIX) || defined(CYGWIN32) || defined(RANDOM) || defined(__APPLE__) 305. #define Rand() random() 306. #else 307. #define Rand() lrand48() 308. #endif 309. 310. #ifdef TIMED_DELAY 311. # if defined(SUNOS4) || defined(LINUX) || (defined(BSD) && !defined(ULTRIX)) 312. # define msleep(k) usleep((k)*1000) 313. # endif 314. # ifdef ULTRIX 315. # define msleep(k) napms(k) 316. # endif 317. #endif 318. 319. #ifdef hc /* older versions of the MetaWare High-C compiler define this */ 320. # ifdef __HC__ 321. # undef __HC__ 322. # endif 323. # define __HC__ hc 324. # undef hc 325. #endif 326. 327. #if defined(GNOME_GRAPHICS) 328. #if defined(LINUX) 329. # include 330. # if defined(__NR_getresuid) && defined(__NR_getresgid) /* ie., >= v2.1.44 */ 331. # define GETRES_SUPPORT 332. # endif 333. #else 334. # if defined(BSD) || defined(SVR4) 335. /* 336. * ALI We assume that SVR4 means we can safely include syscall.h 337. * (although it's really a BSDism). This is certainly true for Solaris 2.5, 338. * Solaris 7, Solaris 8 and Compaq Tru64 5.1 339. * Later BSD systems will have the getresid system calls. 340. */ 341. # include 342. # if (defined (SYS_getuid) || defined(SYS_getresuid)) && \ 343. (defined(SYS_getgid) || defined(SYS_getresgid)) 344. # define GETRES_SUPPORT 345. # endif 346. # endif /* BSD || SVR4 */ 347. #endif /* LINUX */ 348. #endif /* GNOME_GRAPHICS */ 349. 350. #endif /* UNIXCONF_H */ 351. #endif /* UNIX */ Category:source code